home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 3 / Amiga Tools 3.iso / guides-texts / amos / amoslist / text0153.txt < prev    next >
Encoding:
Text File  |  1995-09-01  |  1.7 KB  |  58 lines

  1. >                    AMOS BUG REPORT - Updated August 15, 1995
  2. >
  3. > Personal Info
  4. > -------------
  5. > Name:            Tim Lewis
  6. > EMail:        tl14@diamond.bton.ac.uk
  7. >
  8. > Hardware
  9. > --------
  10. > Amiga:        500
  11. > FAST RAM:        512K
  12. > CHIP RAM:        512K
  13. > CPU:            68000
  14. > FPU:            N/A
  15. > OS:            (1.3)
  16. > Kickstart:    1.3?
  17. > Workbench:    (1.3.2)
  18. > Peripherals:    Midi Interface, printer - not always connected!
  19. >
  20. > AMOS
  21. > ----
  22. > AMOS:            Creator
  23. > Version:        1.3.(I think)
  24. > Compiler:        creator
  25. > Version:        ?
  26. > Extensions:    None
  27. > Startup:        CLI
  28. > Background:    None
  29. >
  30. > BUG Description
  31. > ---------------
  32. > Command:        dim(x,x) - problem with large arrays
  33. > Severity:        Crashes Amiga!
  34.  
  35.     When using large 2d arrays, declaring them does not cause an error!  Even
  36. when you set the variable buffer to large amounts of memory (e.g. 50 - 100!!).
  37. The problem occurs when you try and write to the array at a position some way
  38. into the array.
  39. EXAMPLE: Declaring a 100*100 array, trying to write to location 100,81 causes
  40. the machine to freeze.  Reset time.  I did some checking myself and found that
  41. the machine location for the array is not continuous!!!
  42.     Varptr(a(0,0)) = 254000   // rough example!
  43.     Varptr(a(0,1)) = 254004   // or equivalent step (maybe not a Long Word)
  44.     .
  45.     .
  46.     .
  47.     Varptr(a(0,79)) = 26xxx   // rough...
  48.     Varptr(a(0,81)) = 16000      // !!!!!!!!!!!
  49.  
  50.     The editor is reserving enough memory for the array, but because of the
  51. memory chunk management is not actually reserving it as a continuous block!
  52. The referencing functions however, reckon it is!!  So when you write to where
  53. the array storage should be but isn't.........  you get the picture.  A whole
  54. manner of different crashes can be obtained!!!
  55.     This is obviously NOT GOOD!!  Problem can be got round by using data banks
  56. and (P/D/L)oke & (P/D/L)eek commands!
  57.  
  58.